iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

轉職仔與JavaScript的初次相遇系列 第 26

JavaScript的Class繼承 - Day27

  • 分享至 

  • xImage
  •  

前言

今天會針對JavaScript的Class的繼承語法進行解釋

說明

首先Constructor prototype繼承可以透過Class的extends關鍵字達成
舉例:

class Name{
  constructor(firstName, lastName, age){
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
  }
  intro(){
    console.log(this.firstName + ' 今年' + this.age + '歲')
  }
}

class Student extends Name{
  constructor(major, grade, firstName, lastName, age){ 
    super(firstName, lastName, age)
    this.major = major;
    this.grade = grade;
  }
  study(){
    console.log('學生' + this.firstName + '的' + this.major + '很厲害');
  }
}

let jeremy = new Student('chemistry', 3.5, 'jeremy', 'hung', 27)
jeremy.study(); //學生jeremy的chemistry很厲害

解釋部分可分為

  1. 使用extends (extends Name表示繼承自Name Class,Name為父Class,Student為子Class)
  2. 使用super關鍵字,呼叫父Class的建構函式並初始化繼承自父Class的屬性
  3. 新增了屬性(this.major和this.grade)以及方法study()
class Student extends Name{
// Student class的Parameter包含(major, grade, firstName, lastName以及age)
  constructor(major, grade, firstName, lastName, age){ 
    //使用super關鍵字呼叫父Class的constructor存取屬性和方法
    super(firstName, lastName, age)
    this.major = major;
    this.grade = grade;
  }
  //建立study method
  study(){
    console.log('學生' + this.firstName + '的' + this.major + '很厲害');
  }
}

上一篇
JavaScript的Constructor prototype inheritance(構造函式的原型繼承-下) - Day25
下一篇
JavaScript的Class(類別) - Day26
系列文
轉職仔與JavaScript的初次相遇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言